﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.Windows.Forms;


namespace Accesos.Clases.Usuarios
{
    public class clsUsuario
    {

        private SqlCommand SqlProSeleccionar;
        private SqlConnection SqlProConexion;
        private SqlCommand SqlProInsertar;
        private SqlDataAdapter SqlProAdaptador;
        private string Conexion;
       
        
        public clsUsuario(string Con) 
        {
            Conexion = Con;
        }


        public void metMostrarGrupos()
        {
            this.SqlProSeleccionar = new SqlCommand();
            this.SqlProAdaptador = new SqlDataAdapter();
            this.SqlProConexion = new SqlConnection();
            // 
            // SqlProSelecionar
            // 
            this.SqlProSeleccionar.CommandText = "SELECT     vs_getGrupos.*\r\nFROM         vs_getGrupos";
            //En esta parte del codigo se implemento una vista que se encuentra programada en 
            //el motor de base de datos
            this.SqlProSeleccionar.Connection = this.SqlProConexion;
            this.SqlProConexion.ConnectionString = Conexion;
            // 
            // SqlProAdaptador
            // 
            //Configuracion del adaptador de datos
            this.SqlProAdaptador.SelectCommand = this.SqlProSeleccionar;

        }

        public void metMostrarAllUsuarios(ColeccionDeDatos varIngreso)
        {
            this.SqlProSeleccionar = new SqlCommand();
            this.SqlProAdaptador = new SqlDataAdapter();
            this.SqlProConexion = new SqlConnection();
            // 
            // SqlProSelecionar
            // 
            this.SqlProSeleccionar.CommandText = "SELECT     vs_allUsuarios.*\r\nFROM         vs_allUsuarios";
            //En esta parte del codigo se implemento una vista que se encuentra programada en 
            //el motor de base de datos
            this.SqlProSeleccionar.Connection = this.SqlProConexion;
            this.SqlProConexion.ConnectionString = Conexion;
            // 
            // SqlProAdaptador
            // 
            //Configuracion del adaptador de datos
            this.SqlProAdaptador.SelectCommand = this.SqlProSeleccionar;
            SqlProAdaptador.Fill(varIngreso.vs_allUsuarios);

        }

        //Metodo que actualizara los nuevos datos de la cuenta......
        public void metActualizarDatos(string cod, string codG, string nom, string nick, string est, string clave, string inf, byte[] imagen, string txtCorreo)
        {

            BaseDeDatos.clsBaseDeDatos auxClsBD = new BaseDeDatos.clsBaseDeDatos(Conexion);
            auxClsBD.ConfigurarProcedimientos("sp_ActualizarUsuarios");
            ClasesL.clsLocal auxCls = new ClasesL.clsLocal();
            auxClsBD.DeclaracionVariables("@cod", cod, 1, 1);
            auxClsBD.DeclaracionVariables("@codG", codG, 1, 1);
            auxClsBD.DeclaracionVariables("@nom", nom, 1, 1);
            auxClsBD.DeclaracionVariables("@nick", nick, 1, 1);
            auxClsBD.DeclaracionVariables("@estado", est, 1, 1);
            auxClsBD.DeclaracionVariables("@clave", clave, 1, 1);
            auxClsBD.DeclaracionVariables("@infor", inf, 1, 1);
            auxClsBD.DeclaracionVariablesImagen("@imn", imagen);
            auxClsBD.DeclaracionVariables("@correo", txtCorreo, 1, 1);
            auxClsBD.ejecutar();
            auxClsBD.Desconectar();

        }

        public void metActivaMostrarD(ColeccionDeDatos varIngreso)
        {
            SqlProAdaptador.Fill(varIngreso.vs_getGrupos);//Activacion del dataset que en este 
            //caso se llama CONFIGURACIONDEDATOS
        }


        public void metMostrarCuentas()
        {
            this.SqlProSeleccionar = new SqlCommand();
            this.SqlProAdaptador = new SqlDataAdapter();
            this.SqlProConexion = new SqlConnection();
            // 
            // SqlProSelecionar
            // 
            this.SqlProSeleccionar.CommandText = "SELECT     vs_getCuenta.*\r\nFROM         vs_getCuenta";
            //En esta parte del codigo se implemento una vista que se encuentra programada en 
            //el motor de base de datos
            this.SqlProSeleccionar.Connection = this.SqlProConexion;
            this.SqlProConexion.ConnectionString = Conexion;
            // 
            // SqlProAdaptador
            // 
            //Configuracion del adaptador de datos
            this.SqlProAdaptador.SelectCommand = this.SqlProSeleccionar;

        }

        public void metActivaCuentas(ColeccionDeDatos varIngreso)
        {
            SqlProAdaptador.Fill(varIngreso.vs_getCuenta);//Activacion del dataset que en este 
            //caso se llama CONFIGURACIONDEDATOS
        }


        public int metConteoUsuarios()
        {
            BaseDeDatos.clsBaseDeDatos auxCls = new BaseDeDatos.clsBaseDeDatos(Conexion);
            auxCls.ConfigurarProcedimientos("sp_getNumeroUsuarios");
            auxCls.DeclaracionVariables("@numUs","2",2,2 );
            auxCls.ejecutar();
            auxCls.Desconectar();
            return (Int32)(auxCls.outVar("@numUs"));          

        }


      

        public void metIngresarDatos(string txtCodigoGrupo,string txtNom,string txtNick,string txtClav,byte[] imagen,string txtCorreo)
        {
            
            BaseDeDatos.clsBaseDeDatos auxClsBD = new BaseDeDatos.clsBaseDeDatos(Conexion);
            auxClsBD.ConfigurarProcedimientos("sp_Ingresar_tUsuario");
            ClasesL.clsLocal auxCls = new ClasesL.clsLocal();
            auxClsBD.DeclaracionVariables("@txtCodigoUs", auxCls.GeneracionClaves("U", metConteoUsuarios()), 1, 1);
            auxClsBD.DeclaracionVariables("@txtCodigoGrupoUs", txtCodigoGrupo, 1, 1);
            auxClsBD.DeclaracionVariables("@txtNombresUs", txtNom, 1,1);
            auxClsBD.DeclaracionVariables("@txtNickUs", txtNick, 1, 1);
            auxClsBD.DeclaracionVariables("@txtClaveUs", txtClav, 1, 1);
            auxClsBD.DeclaracionVariables("@txtEstadoUs", "Activado", 1, 1);
            auxClsBD.DeclaracionVariables("@txtObservacionUs", "Registro activado", 1, 1);
            auxClsBD.DeclaracionVariablesImagen( "@imgImagenUs",imagen);
            auxClsBD.DeclaracionVariables("@txtMail",txtCorreo,1,1);
            auxClsBD.ejecutar();
            auxClsBD.Desconectar();

        }

        public void metCuentaActiva(ColeccionDeDatos col, string Nick, string Clave)
        {
            BaseDeDatos.clsBaseDeDatos auxClsBD = new BaseDeDatos.clsBaseDeDatos(Conexion);
            auxClsBD.ConfigurarProcedimientos("sp_cuentaActiva");
            ClasesL.clsLocal auxCls = new ClasesL.clsLocal();
            auxClsBD.DeclaracionVariables("@nick", Nick, 1, 1);
            auxClsBD.DeclaracionVariables("@clave", Clave, 1, 1);
            auxClsBD.ejecutarProcConValor(col);
            auxClsBD.Desconectar();
            //SqlProAdaptador.Fill(col.sp_cuentaActiva);
        }
    }
}
